<?php
/**
 * Autor:   Miguel A. Zilli
 * Email:   miguelzilli@gmail.com
 */

class DelegadosController extends AppController{
    var $name='Delegados';
    var $uses = array('Delegado','Provincia','Departamento','Localidad');
    var $helpers=array('DatePicker','Ajax','Javascript','Time');
    var $paginate=array(
        'limit' => 20,
        'order' => array(
            'Delegado.apellido_del' => 'ASC',
            'Delegado.nombre_del'=> 'ASC',
            'Delegado.cuit_del'=>'ASC'
        )
    );

    function beforeFilter(){
        parent::beforeFilter();
        $this->__checkAdmin();
    }

    function listar(){
        $condicion='(Delegado.apellido_del<>\'--NINGUNO--\')';
        $this->set('delegados',$this->paginate('Delegado',$condicion));
    }

    function agregar(){
        if(!empty($this->data)){
            if($this->Delegado->save($this->data)){
                $this->Session->setFlash('Operacion realizada correctamente.');
                $this->redirect(array('action'=>'listar'),null,true);
            }else{
                $this->Session->setFlash('Error: No se pudo realizar la operacion.');
            }
        }
        $this->set('provincias', $this->Provincia->find('list'));
        $primera_provincia = $this->Provincia->find('first');
        $this->set('departamentos', $this->Departamento->find('list', array(
                    'conditions'=>'Departamento.provincia_id='.$primera_provincia['Provincia']['id'])));
        $primer_dpto= $this->Departamento->find('first');
        $this->set('localidades', $this->Localidad->find('list', array(
                    'conditions'=>'Localidad.departamento_id='.$primer_dpto['Departamento']['id'])));
    }

    function editar($id=null){
        if(!empty($this->data)){
            if($this->Delegado->save($this->data)){
                $this->Session->setFlash('Operacion realizada correctamente.');
                $this->redirect(array('action'=>'listar'),null,true);
            }else{
                $this->Session->setFlash('Error: No se pudo realizar la operacion.');
            }
        }
        if(empty($this->data)){
            $this->data=$this->Delegado->read(null,$id);
        }
        $this->data+=$this->Departamento->find('first',array(
                'conditions'=>'Departamento.id='.$this->data['Localidad']['departamento_id']));
        $this->set('provincias', $this->Provincia->find('list'));
        $this->set('departamentos',$this->Departamento->find('list',array(
                    'conditions'=>'Departamento.provincia_id='.$this->data['Departamento']['provincia_id'])));
        $this->set('localidades', $this->Localidad->find('list',array(
                    'conditions'=>'Localidad.departamento_id='.$this->data['Localidad']['departamento_id'])));
    }

    function eliminar($id=null){
        if($this->Delegado->del($id)){
            $this->Session->setFlash('Operacion realizada correctamente.');
            $this->redirect(array('action'=>'listar'),null,true);
        }else{
            $this->Session->setFlash('Error: No se pudo realizar la operacion.');
            $this->redirect(array('action'=>'listar'),null,true);
        }
    }

    function update_dpto(){
        if (!empty($this->data['Departamento']['provincia_id'])){
            $id_prov = $this->data['Departamento']['provincia_id'];
            $departamentos = $this->Departamento->find('list', array('fields'=>array('nombre_dpto'),'order'=>'nombre_dpto ASC','conditions'=>array('Departamento.provincia_id'=>$id_prov)));
        }else{
            $departamentos = null;
        }
        $this->set('options', $departamentos);
        $this->render('/elements/update_select', 'ajax');
    }

    function update_loc(){
        if (!empty($this->data['Localidad']['departamento_id'])){
            $id_dpto = $this->data['Localidad']['departamento_id'];
            $localidades = $this->Localidad->find('list', array('fields'=>array('nombre_loc'),'order'=>'nombre_loc ASC','conditions'=>array('Localidad.departamento_id'=>$id_dpto)));
        }else{
            $localidades = null;
        }
        $this->set('options', $localidades);
        $this->render('/elements/update_select', 'ajax');
    }

}
?>